openCV:滑动条之setTrackbarPos与createTrackbar

您所在的位置:网站首页 opencv 滑动条 openCV:滑动条之setTrackbarPos与createTrackbar

openCV:滑动条之setTrackbarPos与createTrackbar

2023-09-27 15:07| 来源: 网络整理| 查看: 265

滑动条(trackbar) 创建滑动条(createTrackbar)

openCV提供createTrackbar指定图像窗口创建一个指定名称和范围的滑动条,使用户能够滑动调整输入,然后根据输入值执行程序。还提供了getTrackbarPos和setTrackbarPos以获取和修改bar的当前值。

// C++ code int createTrackbar(const string& trackbarname, const string& winname, int* value, int count, TrackbarCallback onChange=0, void*userdata=0)

Parameters:

trackbarname:创建的滑动条名。winname:滑动条的父窗体名。value:滑动条当前值。count:允许的最大值,最小值为0。onChange:回调函数,当滑动条位置发生变化时,调用此函数。函数形如void Foo(int,void*);,第一个是位置值,第二个是userdatauserdata:可以被传递给回调函数,可以在没有全局位置变量时起作用。 获取当前值(getTrackbarPos) int getTrackbarPos(const String& trackbarname, const String& winname)

Parameters:

trackbarname:滑动条名称。winname:窗口名称 设置滑动条位置(setTrackbarPos) void setTrackbarPos(const String& trackbarname, const String& winname, int pos)

Parameters:

trackbarname:滑动条名称。winname:窗口名称。pos:新位置。 测试代码

代码功能描述:

通过调整滑动条的位置可以调整视频的帧位;”r“键播放视频;”s“键每按一次切换一帧; //code from "Learning OpenCV 3" #include #include #include #include using namespace std; int g_slider_position = 0; int g_run = 1, g_dontset = 0; cv::VideoCapture g_cap; void onTrackbarSlide(int pos, void *) { g_cap.set(cv::CAP_PROP_POS_FRAMES, pos); if (!g_dontset) g_run = 1; g_dontset = 0; } int main() { string winName = "Example2-4"; string trackName = "Position"; cv::namedWindow(winName, cv::WINDOW_AUTOSIZE); g_cap.open(string("C:\\Users\\LIKE\\Videos\\Bad Apple.mp4")); int frames = (int)g_cap.get(cv::CAP_PROP_FRAME_COUNT); int tmpw = (int)g_cap.get(cv::CAP_PROP_FRAME_WIDTH); int tmph = (int)g_cap.get(cv::CAP_PROP_FRAME_HEIGHT); cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3